import pandas as pd # type: ignore
from sqlalchemy import create_engine # type: ignore
import time
start =time.perf_counter()
# PostgreSQL 配置
postgres_host = "172.16.137.39"  
postgres_port = "5432"  
postgres_user = "a2513220218"  
postgres_password = "xawl-6043"  
postgres_database = "gp101" 

# CSV 文件路径
csv_file_path_city = "D:\数据库\实验报告\city.csv"
csv_file_path_car_info = "D:\数据库\实验报告\car_info.csv"

# 建立连接字符串
conn_string = f"postgresql://{postgres_user}:{postgres_password}@{postgres_host}:{postgres_port}/{postgres_database}"

# 使用 SQLAlchemy 创建数据库连接
engine = create_engine(conn_string)

try:
    # Step 1: 读取 CSV 文件
    df_city = pd.read_csv(csv_file_path_city)
    df_car_info = pd.read_csv(csv_file_path_car_info)
    # 给 car_info 的 DataFrame 添加 id 列
    df_car_info.insert(0, 'id', range(1, 1 + len(df_car_info)))
    # Step 2: 将 DataFrame 导入到 PostgreSQL 数据库
    # 导入 city.csv 数据，如果表存在则追加数据，若不存在则创建
    df_city.to_sql('city', engine, schema='a218', if_exists='append', index=False)
    print("数据成功导入到 a218.city 表中")
    # 导入 car_info.csv 数据，如果表存在则追加数据，若不存在则创建
    df_car_info.to_sql('car_data', engine, schema='a218', if_exists='append', index=False)
    print("数据成功导入到 a218.car_data 表中")
except Exception as e:
    print(f"导入数据时出错: {e}")
finally:
    # 关闭数据库连接
    engine.dispose()

end = time.perf_counter()
print('Running time: %s Seconds'%(end-start))